<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Agile Modbus: /home/runner/work/agile_modbus/agile_modbus/inc/agile_modbus.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Agile Modbus
   &#160;<span id="projectnumber">1.1.4</span>
   </div>
   <div id="projectbrief">Lightweight modbus protocol stack.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('agile__modbus_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">agile_modbus.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Agile Modbus software package common header file.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
<code>#include &quot;<a class="el" href="agile__modbus__rtu_8h_source.html">agile_modbus_rtu.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="agile__modbus__tcp_8h_source.html">agile_modbus_tcp.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for agile_modbus.h:</div>
<div class="dyncontent">
<div class="center"><img src="agile__modbus_8h__incl.png" border="0" usemap="#a_2home_2runner_2work_2agile__modbus_2agile__modbus_2inc_2agile__modbus_8h" alt=""/></div>
<map name="a_2home_2runner_2work_2agile__modbus_2agile__modbus_2inc_2agile__modbus_8h" id="a_2home_2runner_2work_2agile__modbus_2agile__modbus_2inc_2agile__modbus_8h">
<area shape="rect" title="Agile Modbus software package common header file." alt="" coords="5,5,204,61"/>
<area shape="rect" title=" " alt="" coords="69,184,140,211"/>
<area shape="rect" href="agile__modbus__rtu_8h.html" title="Agile Modbus package RTU header file." alt="" coords="29,109,180,136"/>
<area shape="rect" href="agile__modbus__tcp_8h.html" title="Agile Modbus package TCP header file." alt="" coords="205,109,357,136"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="agile__modbus_8h__dep__incl.png" border="0" usemap="#a_2home_2runner_2work_2agile__modbus_2agile__modbus_2inc_2agile__modbus_8hdep" alt=""/></div>
<map name="a_2home_2runner_2work_2agile__modbus_2agile__modbus_2inc_2agile__modbus_8hdep" id="a_2home_2runner_2work_2agile__modbus_2agile__modbus_2inc_2agile__modbus_8hdep">
<area shape="rect" title="Agile Modbus software package common header file." alt="" coords="339,5,537,61"/>
<area shape="rect" href="agile__modbus_8c.html" title="Agile Modbus software package common source file." alt="" coords="5,109,204,165"/>
<area shape="rect" href="agile__modbus__rtu_8c.html" title="Agile Modbus package RTU source file." alt="" coords="228,109,427,165"/>
<area shape="rect" href="agile__modbus__tcp_8c.html" title="Agile Modbus package TCP source file." alt="" coords="451,109,649,165"/>
<area shape="rect" href="agile__modbus__slave__util_8c.html" title="Agile Modbus software package provides simple slave access source files." alt="" coords="673,109,875,165"/>
</map>
</div>
</div>
<p><a href="agile__modbus_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structagile__modbus__sft.html">agile_modbus_sft</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">contains the modbus header parameter structure  <a href="structagile__modbus__sft.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structagile__modbus__backend.html">agile_modbus_backend</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Agile Modbus backend interface structure.  <a href="structagile__modbus__backend.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structagile__modbus.html">agile_modbus</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Agile Modbus structure.  <a href="structagile__modbus.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structagile__modbus__slave__info.html">agile_modbus_slave_info</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Agile Modbus slave information structure.  <a href="structagile__modbus__slave__info.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga1bdaa8903987ab20f825c33f3210ca2e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga1bdaa8903987ab20f825c33f3210ca2e">AGILE_MODBUS_FC_READ_COILS</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="separator:ga1bdaa8903987ab20f825c33f3210ca2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf91b7348ee4aecc99d14afaa3e03c02b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#gaf91b7348ee4aecc99d14afaa3e03c02b">AGILE_MODBUS_FC_READ_DISCRETE_INPUTS</a>&#160;&#160;&#160;0x02</td></tr>
<tr class="separator:gaf91b7348ee4aecc99d14afaa3e03c02b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51394ef0b9afbc569f7541ab1244f65e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga51394ef0b9afbc569f7541ab1244f65e">AGILE_MODBUS_FC_READ_HOLDING_REGISTERS</a>&#160;&#160;&#160;0x03</td></tr>
<tr class="separator:ga51394ef0b9afbc569f7541ab1244f65e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7771198acca215a378463eb13ad040d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga7771198acca215a378463eb13ad040d1">AGILE_MODBUS_FC_READ_INPUT_REGISTERS</a>&#160;&#160;&#160;0x04</td></tr>
<tr class="separator:ga7771198acca215a378463eb13ad040d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4eaf03c1474a3397f847edd94200ec2f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga4eaf03c1474a3397f847edd94200ec2f">AGILE_MODBUS_FC_WRITE_SINGLE_COIL</a>&#160;&#160;&#160;0x05</td></tr>
<tr class="separator:ga4eaf03c1474a3397f847edd94200ec2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3003e1bab9d1b1da61250ec2dae421cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga3003e1bab9d1b1da61250ec2dae421cd">AGILE_MODBUS_FC_WRITE_SINGLE_REGISTER</a>&#160;&#160;&#160;0x06</td></tr>
<tr class="separator:ga3003e1bab9d1b1da61250ec2dae421cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabbcd5854c34d199f2f707bb3bfb373f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#gaabbcd5854c34d199f2f707bb3bfb373f">AGILE_MODBUS_FC_READ_EXCEPTION_STATUS</a>&#160;&#160;&#160;0x07</td></tr>
<tr class="separator:gaabbcd5854c34d199f2f707bb3bfb373f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga437dc2cfaa22f7cfcafdd1f85b5a6955"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga437dc2cfaa22f7cfcafdd1f85b5a6955">AGILE_MODBUS_FC_WRITE_MULTIPLE_COILS</a>&#160;&#160;&#160;0x0F</td></tr>
<tr class="separator:ga437dc2cfaa22f7cfcafdd1f85b5a6955"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga89ce7e11ea0f593ee6801a0d0dd50f5d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga89ce7e11ea0f593ee6801a0d0dd50f5d">AGILE_MODBUS_FC_WRITE_MULTIPLE_REGISTERS</a>&#160;&#160;&#160;0x10</td></tr>
<tr class="separator:ga89ce7e11ea0f593ee6801a0d0dd50f5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga890fb2bcf11bb6463e3bc20883c06eee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga890fb2bcf11bb6463e3bc20883c06eee">AGILE_MODBUS_FC_REPORT_SLAVE_ID</a>&#160;&#160;&#160;0x11</td></tr>
<tr class="separator:ga890fb2bcf11bb6463e3bc20883c06eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ba08a18b715d5dc44b9e8bca79dd149"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga0ba08a18b715d5dc44b9e8bca79dd149">AGILE_MODBUS_FC_MASK_WRITE_REGISTER</a>&#160;&#160;&#160;0x16</td></tr>
<tr class="separator:ga0ba08a18b715d5dc44b9e8bca79dd149"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7243db4d3adff479a3d4f2a201ece12a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___function___codes.html#ga7243db4d3adff479a3d4f2a201ece12a">AGILE_MODBUS_FC_WRITE_AND_READ_REGISTERS</a>&#160;&#160;&#160;0x17</td></tr>
<tr class="separator:ga7243db4d3adff479a3d4f2a201ece12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6465ef54c2c342da4d0bab3960ed102f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#ga6465ef54c2c342da4d0bab3960ed102f">AGILE_MODBUS_VERSION_STRING</a>&#160;&#160;&#160;&quot;AMB_1.1.4&quot;</td></tr>
<tr class="memdesc:ga6465ef54c2c342da4d0bab3960ed102f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Agile Modbus version number.  <a href="group___modbus___constants.html#ga6465ef54c2c342da4d0bab3960ed102f">More...</a><br /></td></tr>
<tr class="separator:ga6465ef54c2c342da4d0bab3960ed102f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga224b2d0e89248e2928b13486362e1dc2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#ga224b2d0e89248e2928b13486362e1dc2">AGILE_MODBUS_BROADCAST_ADDRESS</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga224b2d0e89248e2928b13486362e1dc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modbus broadcast address.  <a href="group___modbus___constants.html#ga224b2d0e89248e2928b13486362e1dc2">More...</a><br /></td></tr>
<tr class="separator:ga224b2d0e89248e2928b13486362e1dc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad48bc178785378db70099637fc648d77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#gad48bc178785378db70099637fc648d77">AGILE_MODBUS_MAX_PDU_LENGTH</a>&#160;&#160;&#160;253</td></tr>
<tr class="separator:gad48bc178785378db70099637fc648d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4b27ed9fcc35c7aa76e2a6c21bbf2b6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#gac4b27ed9fcc35c7aa76e2a6c21bbf2b6">AGILE_MODBUS_MAX_ADU_LENGTH</a>&#160;&#160;&#160;260</td></tr>
<tr class="separator:gac4b27ed9fcc35c7aa76e2a6c21bbf2b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Quantity limit of Coils</div></td></tr>
<tr><td colspan="2"><div class="groupText"><pre class="fragment">   Modbus_Application_Protocol_V1_1b.pdf (chapter 6 section 1 page 12)
   Quantity of Coils to read (2 bytes): 1 to 2000 (0x7D0)
   (chapter 6 section 11 page 29)
   Quantity of Coils to write (2 bytes): 1 to 1968 (0x7B0)</pre> </div></td></tr>
<tr class="memitem:ga55e6b64f5c26356198708ce0ee23bb60"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#ga55e6b64f5c26356198708ce0ee23bb60">AGILE_MODBUS_MAX_READ_BITS</a>&#160;&#160;&#160;2000</td></tr>
<tr class="separator:ga55e6b64f5c26356198708ce0ee23bb60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc9412592af5b13346eda171ba6e4f3c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#gabc9412592af5b13346eda171ba6e4f3c">AGILE_MODBUS_MAX_WRITE_BITS</a>&#160;&#160;&#160;1968</td></tr>
<tr class="separator:gabc9412592af5b13346eda171ba6e4f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Quantity limit of Registers</div></td></tr>
<tr><td colspan="2"><div class="groupText"><pre class="fragment">   Modbus_Application_Protocol_V1_1b.pdf (chapter 6 section 3 page 15)
   Quantity of Registers to read (2 bytes): 1 to 125 (0x7D)
   (chapter 6 section 12 page 31)
   Quantity of Registers to write (2 bytes) 1 to 123 (0x7B)
   (chapter 6 section 17 page 38)
   Quantity of Registers to write in R/W registers (2 bytes) 1 to 121 (0x79)</pre> </div></td></tr>
<tr class="memitem:gae197ea0d248e33a49957dd33580eda1c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#gae197ea0d248e33a49957dd33580eda1c">AGILE_MODBUS_MAX_READ_REGISTERS</a>&#160;&#160;&#160;125</td></tr>
<tr class="separator:gae197ea0d248e33a49957dd33580eda1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa82d47d969c352ebb7d9f005d2616434"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#gaa82d47d969c352ebb7d9f005d2616434">AGILE_MODBUS_MAX_WRITE_REGISTERS</a>&#160;&#160;&#160;123</td></tr>
<tr class="separator:gaa82d47d969c352ebb7d9f005d2616434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0d6ebec0edd26f1eb80db66840f26d0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#gad0d6ebec0edd26f1eb80db66840f26d0">AGILE_MODBUS_MAX_WR_WRITE_REGISTERS</a>&#160;&#160;&#160;121</td></tr>
<tr class="separator:gad0d6ebec0edd26f1eb80db66840f26d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4784aefd5c87a17940705d22ffdf457"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___modbus___constants.html#gaf4784aefd5c87a17940705d22ffdf457">AGILE_MODBUS_MAX_WR_READ_REGISTERS</a>&#160;&#160;&#160;125</td></tr>
<tr class="separator:gaf4784aefd5c87a17940705d22ffdf457"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaa551bce4815f2889224102ac08f779ad"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structagile__modbus__sft.html">agile_modbus_sft</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___types.html#gaa551bce4815f2889224102ac08f779ad">agile_modbus_sft_t</a></td></tr>
<tr class="memdesc:gaa551bce4815f2889224102ac08f779ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">contains the modbus header parameter structure  <a href="group___c_o_m_m_o_n___exported___types.html#gaa551bce4815f2889224102ac08f779ad">More...</a><br /></td></tr>
<tr class="separator:gaa551bce4815f2889224102ac08f779ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad07c76f52ecac865589bdea79112ccb6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structagile__modbus.html">agile_modbus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a></td></tr>
<tr class="memdesc:gad07c76f52ecac865589bdea79112ccb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Agile Modbus structure.  <a href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">More...</a><br /></td></tr>
<tr class="separator:gad07c76f52ecac865589bdea79112ccb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3de0b082d8d88e159d162bcf78ef123c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structagile__modbus__backend.html">agile_modbus_backend</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___types.html#ga3de0b082d8d88e159d162bcf78ef123c">agile_modbus_backend_t</a></td></tr>
<tr class="memdesc:ga3de0b082d8d88e159d162bcf78ef123c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Agile Modbus backend interface structure.  <a href="group___c_o_m_m_o_n___exported___types.html#ga3de0b082d8d88e159d162bcf78ef123c">More...</a><br /></td></tr>
<tr class="separator:ga3de0b082d8d88e159d162bcf78ef123c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae66e6077fe07d589d91121ac8874541a"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___slave___exported___types.html#gae66e6077fe07d589d91121ac8874541a">agile_modbus_slave_callback_t</a>) (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, struct <a class="el" href="structagile__modbus__slave__info.html">agile_modbus_slave_info</a> *slave_info, const void *data)</td></tr>
<tr class="memdesc:gae66e6077fe07d589d91121ac8874541a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slave callback function.  <a href="group___slave___exported___types.html#gae66e6077fe07d589d91121ac8874541a">More...</a><br /></td></tr>
<tr class="separator:gae66e6077fe07d589d91121ac8874541a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55ba175253ca676ad5c5791b0afa9d6f20ac">AGILE_MODBUS_EXCEPTION_ILLEGAL_FUNCTION</a> = 0x01
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55baf726441ad31971e171a2a25401c60af2">AGILE_MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55baab1bfcc730df364863e14f7675acbc13">AGILE_MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55bae1bb21560582b2a4c509f4ca6b249956">AGILE_MODBUS_EXCEPTION_SLAVE_OR_SERVER_FAILURE</a>
, <br />
&#160;&#160;<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55ba33e2240b5812482471e66ae97397825f">AGILE_MODBUS_EXCEPTION_ACKNOWLEDGE</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55ba8ffc92d333e20f8eba2463ec277748d1">AGILE_MODBUS_EXCEPTION_SLAVE_OR_SERVER_BUSY</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55baff47f16ef50cf30c15983b3181343af6">AGILE_MODBUS_EXCEPTION_NEGATIVE_ACKNOWLEDGE</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55bab0a2def6bc1f4bced8c82da1ddf146da">AGILE_MODBUS_EXCEPTION_MEMORY_PARITY</a>
, <br />
&#160;&#160;<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55ba9888b4565cba5b54042d3bd469abc7d8">AGILE_MODBUS_EXCEPTION_NOT_DEFINED</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55ba0ed56108402939a0c6f181c1d639205d">AGILE_MODBUS_EXCEPTION_GATEWAY_PATH</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55ba2f8205e4b63716964c6bbf7deadd4949">AGILE_MODBUS_EXCEPTION_GATEWAY_TARGET</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga06fc87d81c62e9abb8790b6e5713c55ba14cb4b03d87baae67e83b3bfea7f64b2">AGILE_MODBUS_EXCEPTION_UNKNOW</a> = 0xff
<br />
 }</td></tr>
<tr class="memdesc:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modbus exception code.  <a href="group___c_o_m_m_o_n___exported___types.html#ga06fc87d81c62e9abb8790b6e5713c55b">More...</a><br /></td></tr>
<tr class="separator:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88d4f826eda73ae5fc071856f70683fd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___types.html#ga88d4f826eda73ae5fc071856f70683fd">agile_modbus_backend_type_t</a> { <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga88d4f826eda73ae5fc071856f70683fdab0a15fe132d3f733ee4052ea2f0bd391">AGILE_MODBUS_BACKEND_TYPE_RTU</a> = 0
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gga88d4f826eda73ae5fc071856f70683fdaf4f989f5d3eaf37ca4175e7bd6560714">AGILE_MODBUS_BACKEND_TYPE_TCP</a>
 }</td></tr>
<tr class="memdesc:ga88d4f826eda73ae5fc071856f70683fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">@ brief Modbus backend type  <a href="group___c_o_m_m_o_n___exported___types.html#ga88d4f826eda73ae5fc071856f70683fd">More...</a><br /></td></tr>
<tr class="separator:ga88d4f826eda73ae5fc071856f70683fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed0f4c33339c8ae9c8730abef9e0f02f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___types.html#gaed0f4c33339c8ae9c8730abef9e0f02f">agile_modbus_msg_type_t</a> { <a class="el" href="group___c_o_m_m_o_n___exported___types.html#ggaed0f4c33339c8ae9c8730abef9e0f02faf9852866360e261fba1cafe87a964b01">AGILE_MODBUS_MSG_INDICATION</a>
, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#ggaed0f4c33339c8ae9c8730abef9e0f02fac6dd2ba8a1de6b58ce9ec199d4875da4">AGILE_MODBUS_MSG_CONFIRMATION</a>
 }</td></tr>
<tr class="memdesc:gaed0f4c33339c8ae9c8730abef9e0f02f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modbus received message type.  <a href="group___c_o_m_m_o_n___exported___types.html#gaed0f4c33339c8ae9c8730abef9e0f02f">More...</a><br /></td></tr>
<tr class="separator:gaed0f4c33339c8ae9c8730abef9e0f02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga520bd6e5aa1521ebe24a058f8bc9e6f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___functions.html#ga520bd6e5aa1521ebe24a058f8bc9e6f5">agile_modbus_common_init</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, uint8_t *send_buf, int send_bufsz, uint8_t *read_buf, int read_bufsz)</td></tr>
<tr class="memdesc:ga520bd6e5aa1521ebe24a058f8bc9e6f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize modbus handle  <a href="group___c_o_m_m_o_n___exported___functions.html#ga520bd6e5aa1521ebe24a058f8bc9e6f5">More...</a><br /></td></tr>
<tr class="separator:ga520bd6e5aa1521ebe24a058f8bc9e6f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e2698caaa0b25e3d2fb00bba81594f7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___functions.html#ga6e2698caaa0b25e3d2fb00bba81594f7">agile_modbus_set_slave</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int slave)</td></tr>
<tr class="memdesc:ga6e2698caaa0b25e3d2fb00bba81594f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">set address  <a href="group___c_o_m_m_o_n___exported___functions.html#ga6e2698caaa0b25e3d2fb00bba81594f7">More...</a><br /></td></tr>
<tr class="separator:ga6e2698caaa0b25e3d2fb00bba81594f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac87efdacacabbaaa2d8ed74904b36f49"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___functions.html#gac87efdacacabbaaa2d8ed74904b36f49">agile_modbus_set_compute_meta_length_after_function_cb</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, uint8_t(*cb)(<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int function, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gaed0f4c33339c8ae9c8730abef9e0f02f">agile_modbus_msg_type_t</a> msg_type))</td></tr>
<tr class="memdesc:gac87efdacacabbaaa2d8ed74904b36f49"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets the data element length callback function to be received after calculating the function code of the modbus object  <a href="group___c_o_m_m_o_n___exported___functions.html#gac87efdacacabbaaa2d8ed74904b36f49">More...</a><br /></td></tr>
<tr class="separator:gac87efdacacabbaaa2d8ed74904b36f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d9466fb449c30600896fb7d59709eef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___functions.html#ga1d9466fb449c30600896fb7d59709eef">agile_modbus_set_compute_data_length_after_meta_cb</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int(*cb)(<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, uint8_t *msg, int msg_length, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gaed0f4c33339c8ae9c8730abef9e0f02f">agile_modbus_msg_type_t</a> msg_type))</td></tr>
<tr class="memdesc:ga1d9466fb449c30600896fb7d59709eef"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets the data length callback function to be received after calculating the data element of the modbus object  <a href="group___c_o_m_m_o_n___exported___functions.html#ga1d9466fb449c30600896fb7d59709eef">More...</a><br /></td></tr>
<tr class="separator:ga1d9466fb449c30600896fb7d59709eef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5339847285ffab01ff36fe7203d3cb74"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_o_m_m_o_n___exported___functions.html#ga5339847285ffab01ff36fe7203d3cb74">agile_modbus_receive_judge</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length, <a class="el" href="group___c_o_m_m_o_n___exported___types.html#gaed0f4c33339c8ae9c8730abef9e0f02f">agile_modbus_msg_type_t</a> msg_type)</td></tr>
<tr class="memdesc:ga5339847285ffab01ff36fe7203d3cb74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify the correctness of received data.  <a href="group___c_o_m_m_o_n___exported___functions.html#ga5339847285ffab01ff36fe7203d3cb74">More...</a><br /></td></tr>
<tr class="separator:ga5339847285ffab01ff36fe7203d3cb74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d43985cad3f09f0d6596760b941edbc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga5d43985cad3f09f0d6596760b941edbc">agile_modbus_serialize_read_bits</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, int nb)</td></tr>
<tr class="separator:ga5d43985cad3f09f0d6596760b941edbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7908f73260d9afeba6ac2b571f163a97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga7908f73260d9afeba6ac2b571f163a97">agile_modbus_deserialize_read_bits</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length, uint8_t *dest)</td></tr>
<tr class="separator:ga7908f73260d9afeba6ac2b571f163a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7de4137539de1bed2e607e846f415c2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#gaf7de4137539de1bed2e607e846f415c2">agile_modbus_serialize_read_input_bits</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, int nb)</td></tr>
<tr class="separator:gaf7de4137539de1bed2e607e846f415c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4124e9e8e7048da83855cb92ee7f6e63"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga4124e9e8e7048da83855cb92ee7f6e63">agile_modbus_deserialize_read_input_bits</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length, uint8_t *dest)</td></tr>
<tr class="separator:ga4124e9e8e7048da83855cb92ee7f6e63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d6724cd3f77e007cd2f6672e7beb3f8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga3d6724cd3f77e007cd2f6672e7beb3f8">agile_modbus_serialize_read_registers</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, int nb)</td></tr>
<tr class="separator:ga3d6724cd3f77e007cd2f6672e7beb3f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadcc32581d649bf2cef5eee596bd67c6f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#gadcc32581d649bf2cef5eee596bd67c6f">agile_modbus_deserialize_read_registers</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length, uint16_t *dest)</td></tr>
<tr class="separator:gadcc32581d649bf2cef5eee596bd67c6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1c9ec6c01a6ea61ddbf5c7977b1d1ca"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#gad1c9ec6c01a6ea61ddbf5c7977b1d1ca">agile_modbus_serialize_read_input_registers</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, int nb)</td></tr>
<tr class="separator:gad1c9ec6c01a6ea61ddbf5c7977b1d1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73504a775e6c4686d65987278599b3cf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga73504a775e6c4686d65987278599b3cf">agile_modbus_deserialize_read_input_registers</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length, uint16_t *dest)</td></tr>
<tr class="separator:ga73504a775e6c4686d65987278599b3cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a8154791b050691e15eb4ae7da97574"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga8a8154791b050691e15eb4ae7da97574">agile_modbus_serialize_write_bit</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, int status)</td></tr>
<tr class="separator:ga8a8154791b050691e15eb4ae7da97574"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga311e3dec8ebbcd502aebe99c6c964638"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga311e3dec8ebbcd502aebe99c6c964638">agile_modbus_deserialize_write_bit</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length)</td></tr>
<tr class="separator:ga311e3dec8ebbcd502aebe99c6c964638"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga134947aa1eba3f64d26844f4c8bf57cb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga134947aa1eba3f64d26844f4c8bf57cb">agile_modbus_serialize_write_register</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, const uint16_t value)</td></tr>
<tr class="separator:ga134947aa1eba3f64d26844f4c8bf57cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c566ab6fae153760cc24a18e0210fff"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga8c566ab6fae153760cc24a18e0210fff">agile_modbus_deserialize_write_register</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length)</td></tr>
<tr class="separator:ga8c566ab6fae153760cc24a18e0210fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4620bc2594720eba79a9c9ffa76d3796"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga4620bc2594720eba79a9c9ffa76d3796">agile_modbus_serialize_write_bits</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, int nb, const uint8_t *src)</td></tr>
<tr class="separator:ga4620bc2594720eba79a9c9ffa76d3796"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabd1613828b12acc5ecf56a7bd4f9e9d1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#gabd1613828b12acc5ecf56a7bd4f9e9d1">agile_modbus_deserialize_write_bits</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length)</td></tr>
<tr class="separator:gabd1613828b12acc5ecf56a7bd4f9e9d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d763faf3f10ea0e48d799f4eac27857"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga5d763faf3f10ea0e48d799f4eac27857">agile_modbus_serialize_write_registers</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, int nb, const uint16_t *src)</td></tr>
<tr class="separator:ga5d763faf3f10ea0e48d799f4eac27857"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2dc807ba747675d754e8095ab7dfb39f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga2dc807ba747675d754e8095ab7dfb39f">agile_modbus_deserialize_write_registers</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length)</td></tr>
<tr class="separator:ga2dc807ba747675d754e8095ab7dfb39f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9553eb261f886f650b8c207a442b3787"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga9553eb261f886f650b8c207a442b3787">agile_modbus_serialize_mask_write_register</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int addr, uint16_t and_mask, uint16_t or_mask)</td></tr>
<tr class="separator:ga9553eb261f886f650b8c207a442b3787"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2bd3952a30caed034f553123d822e9f0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga2bd3952a30caed034f553123d822e9f0">agile_modbus_deserialize_mask_write_register</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length)</td></tr>
<tr class="separator:ga2bd3952a30caed034f553123d822e9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1404336e09246d48a72dd8ed6ff958be"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga1404336e09246d48a72dd8ed6ff958be">agile_modbus_serialize_write_and_read_registers</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int write_addr, int write_nb, const uint16_t *src, int read_addr, int read_nb)</td></tr>
<tr class="separator:ga1404336e09246d48a72dd8ed6ff958be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16f67b00a3a19f98ee69b2cce4b61d4e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga16f67b00a3a19f98ee69b2cce4b61d4e">agile_modbus_deserialize_write_and_read_registers</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length, uint16_t *dest)</td></tr>
<tr class="separator:ga16f67b00a3a19f98ee69b2cce4b61d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeeb30388d6a90405340ab42f22412946"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#gaeeb30388d6a90405340ab42f22412946">agile_modbus_serialize_report_slave_id</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx)</td></tr>
<tr class="separator:gaeeb30388d6a90405340ab42f22412946"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63e99beaa9aa8350bbe2746bd8c123a1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___common___operation___functions.html#ga63e99beaa9aa8350bbe2746bd8c123a1">agile_modbus_deserialize_report_slave_id</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length, int max_dest, uint8_t *dest)</td></tr>
<tr class="separator:ga63e99beaa9aa8350bbe2746bd8c123a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga393dc963d2fac3a2677e8b5f465e187a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___raw___operation___functions.html#ga393dc963d2fac3a2677e8b5f465e187a">agile_modbus_compute_response_length_from_request</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, uint8_t *req)</td></tr>
<tr class="memdesc:ga393dc963d2fac3a2677e8b5f465e187a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the expected response data length.  <a href="group___master___raw___operation___functions.html#ga393dc963d2fac3a2677e8b5f465e187a">More...</a><br /></td></tr>
<tr class="separator:ga393dc963d2fac3a2677e8b5f465e187a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga933c935a47f59cac74bcec545d266a4e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___raw___operation___functions.html#ga933c935a47f59cac74bcec545d266a4e">agile_modbus_serialize_raw_request</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, const uint8_t *raw_req, int raw_req_length)</td></tr>
<tr class="memdesc:ga933c935a47f59cac74bcec545d266a4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pack the original data into a request message.  <a href="group___master___raw___operation___functions.html#ga933c935a47f59cac74bcec545d266a4e">More...</a><br /></td></tr>
<tr class="separator:ga933c935a47f59cac74bcec545d266a4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga601fca9b16febfb33bb26d780e672fc2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___master___raw___operation___functions.html#ga601fca9b16febfb33bb26d780e672fc2">agile_modbus_deserialize_raw_response</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length)</td></tr>
<tr class="memdesc:ga601fca9b16febfb33bb26d780e672fc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">parses the original response data  <a href="group___master___raw___operation___functions.html#ga601fca9b16febfb33bb26d780e672fc2">More...</a><br /></td></tr>
<tr class="separator:ga601fca9b16febfb33bb26d780e672fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ddc38e7ac14384c02b07b8927165247"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___slave___operation___functions.html#ga9ddc38e7ac14384c02b07b8927165247">agile_modbus_slave_handle</a> (<a class="el" href="group___c_o_m_m_o_n___exported___types.html#gad07c76f52ecac865589bdea79112ccb6">agile_modbus_t</a> *ctx, int msg_length, uint8_t slave_strict, <a class="el" href="group___slave___exported___types.html#gae66e6077fe07d589d91121ac8874541a">agile_modbus_slave_callback_t</a> slave_cb, const void *slave_data, int *frame_length)</td></tr>
<tr class="memdesc:ga9ddc38e7ac14384c02b07b8927165247"><td class="mdescLeft">&#160;</td><td class="mdescRight">slave data processing  <a href="group___slave___operation___functions.html#ga9ddc38e7ac14384c02b07b8927165247">More...</a><br /></td></tr>
<tr class="separator:ga9ddc38e7ac14384c02b07b8927165247"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8a9c04d3fe520c9323600940cf080eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___slave___operation___functions.html#gab8a9c04d3fe520c9323600940cf080eb">agile_modbus_slave_io_set</a> (uint8_t *buf, int index, int status)</td></tr>
<tr class="memdesc:gab8a9c04d3fe520c9323600940cf080eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">slave IO settings  <a href="group___slave___operation___functions.html#gab8a9c04d3fe520c9323600940cf080eb">More...</a><br /></td></tr>
<tr class="separator:gab8a9c04d3fe520c9323600940cf080eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5c9135cec09ea8626db054bd3d75227"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___slave___operation___functions.html#gaa5c9135cec09ea8626db054bd3d75227">agile_modbus_slave_io_get</a> (uint8_t *buf, int index)</td></tr>
<tr class="memdesc:gaa5c9135cec09ea8626db054bd3d75227"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read slave IO status.  <a href="group___slave___operation___functions.html#gaa5c9135cec09ea8626db054bd3d75227">More...</a><br /></td></tr>
<tr class="separator:gaa5c9135cec09ea8626db054bd3d75227"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9ba6989bbe265b05caeba41a28db038"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___slave___operation___functions.html#gae9ba6989bbe265b05caeba41a28db038">agile_modbus_slave_register_set</a> (uint8_t *buf, int index, uint16_t data)</td></tr>
<tr class="memdesc:gae9ba6989bbe265b05caeba41a28db038"><td class="mdescLeft">&#160;</td><td class="mdescRight">slave register settings  <a href="group___slave___operation___functions.html#gae9ba6989bbe265b05caeba41a28db038">More...</a><br /></td></tr>
<tr class="separator:gae9ba6989bbe265b05caeba41a28db038"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac82879249cfa7d8926aa9381a0264a72"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___slave___operation___functions.html#gac82879249cfa7d8926aa9381a0264a72">agile_modbus_slave_register_get</a> (uint8_t *buf, int index)</td></tr>
<tr class="memdesc:gac82879249cfa7d8926aa9381a0264a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read slave register data.  <a href="group___slave___operation___functions.html#gac82879249cfa7d8926aa9381a0264a72">More...</a><br /></td></tr>
<tr class="separator:gac82879249cfa7d8926aa9381a0264a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Agile Modbus software package common header file. </p>
<dl class="section author"><dt>Author</dt><dd>Ma Longwei (<a href="#" onclick="location.href='mai'+'lto:'+'254'+'40'+'472'+'13'+'@qq'+'.c'+'om'; return false;">25440<span style="display: none;">.nosp@m.</span>4721<span style="display: none;">.nosp@m.</span>3@qq.<span style="display: none;">.nosp@m.</span>com</a>) </dd></dl>
<dl class="section date"><dt>Date</dt><dd>2022-07-28</dd></dl>
<dl class="section attention"><dt>Attention</dt><dd></dd></dl>
<h2><center>&copy; Copyright (c) 2021 Ma Longwei. All rights reserved.</center></h2>

<p class="definition">Definition in file <a class="el" href="agile__modbus_8h_source.html">agile_modbus.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="agile__modbus_8h.html">agile_modbus.h</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
